레드팀
레드팀풀체인_09_횡적 이동
작성자 : Heehyeon Yoo|2025-12-30
# RedTeam# LateralMovement# Ligolo-ng# SMB# OpSec
1. 개요
횡적 이동(Lateral Movement)은 장악한 거점 시스템에서 네트워크 내부의 다른 호스트, 서버, 클라우드, 애플리케이션 등으로 이동하는 단계를 의미한다.
- 레드팀의 관점: 모의해킹과 달리 범위(Scope)의 제약이 거의 없다. 호스트 간 이동뿐만 아니라 VDI, PAM, SaaS, Cloud, OT 망으로의 이동 등 창의적이고 다각적인 접근이 필요하다.
- 전략: 불필요한 이동을 최소화하여 탐지 확률을 낮추고(Least Noise), 목표 달성을 위한 최단/최적 경로를 설계해야 한다.
2. 주요 기법 및 OpSec 고려사항
2.1. SMB Pivot 및 PsExec
전통적인 PsExec 기법은 SMB 프로토콜(TCP 445)과 윈도우 서비스 관리자(SCM)를 이용한다. 하지만 기본 설정(Default Configuration) 사용 시 EDR에 즉시 탐지되므로 철저한 수정(Customization)이 필요하다.
탐지 포인트 및 우회 방안(Know Your TTPs):
- 서비스 바이너리(Service Binary): C2 프레임워크(Sliver 등)가 생성하는 기본 바이너리는 시그니처 기반 탐지에 취약하다.
- 우회: 사용자 정의(Custom) 서비스 바이너리를 직접 컴파일하여 사용하거나,
Config.IsService플래그를 수정하여 소스코드를 변형해야 한다.
- 우회: 사용자 정의(Custom) 서비스 바이너리를 직접 컴파일하여 사용하거나,
- 서비스 이름 및 설명(Service Name & Description):
Sliver,Sliver Implant등의 기본 이름은 즉시 탐지된다.- 우회: 실제 존재하는 서비스와 유사하게 위장(Masquerading)한다.(예:
Windows Update Helper,ChoiUpdater등).
- 우회: 실제 존재하는 서비스와 유사하게 위장(Masquerading)한다.(예:
- 네임드 파이프(Named Pipe): SMB 통신을 위해 생성되는 파이프 이름이 랜덤하거나 수상하면 탐지된다.
- 우회: 정상적인 윈도우 파이프 이름(
crashpad,spoolss등)을 모방하여suffix를 붙이는 방식을 사용한다.(예:\pipe\crashpad_RT_USER)
- 우회: 정상적인 윈도우 파이프 이름(
2.2. VDI 및 PAM 우회(Ligolo-ng)
망분리(Network Segmentation) 환경이나 PAM(Privileged Access Management) 솔루션을 우회하기 위해 고속 터널링 도구인 Ligolo-ng를 활용한다.
- SOCKS Proxy vs Ligolo-ng:
- SOCKS Proxy: TCP 연결을 중계하지만 오버헤드가 크고 속도가 느려 RDP/VDI 같은 GUI 기반 프로토콜 사용 시 지연(Latency)이 심하다.
- Ligolo-ng: TUN 인터페이스(Layer 3 VPN)를 생성하여 커널 레벨에서 패킷을 처리하므로 속도가 빠르고 안정적이다.
- 공격 시나리오(IT Forest -> DEV Forest):
- 초기 침투: AWS JumpHost 장악.
- 도구 무기화:
Ligolo-ng에이전트(agent.exe)를Donut을 이용해 쉘코드(Shellcode)로 변환한다. - 프로세스 인젝션(Process Injection):
RuntimeBroker.exe등 사용자가 실행 중이며 자동 재실행(Auto-restart)되는 프로세스에 쉘코드를 인젝션한다. 주의: 시스템 프로세스(System Process) 인젝션 시 BSOD 위험 존재. - 역방향 터널링(Reverse Tunneling): 내부망의 트래픽을 공격자 C2 서버로 라우팅한다.
- PAM 악용: 합법적인 PAM 솔루션의 'File Transfer' 기능을 악용하여 폐쇄망 점프 호스트(Jump Host)로 악성코드(DLL Loader 등)를 전송한다.
- LOLBins 실행:
rundll32.exe를 사용하여 업로드된 DLL을 실행, 폐쇄망 내부에서 C2로 연결(Callback)을 맺는다.
3. SMB Named Pipe Pivot
시나리오: AWS JumpHost -> SQL01 횡적 이동
- Named Pipe 리스너 생성:
- 탐지 회피를 위해 정상 파이프와 유사한 이름(
crashpad)을 사용한다.
- 탐지 회피를 위해 정상 파이프와 유사한 이름(
- Talk Token 생성(Impersonation):
Cobalt Roasting등을 통해 획득한 자격 증명으로make_token을 수행, 타겟 시스템(SQL01)의 로컬 관리자 권한을 가진 도메인 유저 컨텍스트를 생성한다.
- PsExec 실행(Customized):
- Service Name:
MssqlUpdater등으로 위장. - Binary Path:
C:\Windows\Temp등 쓰기 권한이 있는 경로 지정. - 결과:
SQL01의SYSTEM권한 세션 획득.(주의: SYSTEM 권한은 도메인 네트워크 자원 접근 시 머신 계정 컨텍스트를 사용하므로, 도메인 유저 권한이 필요할 경우 추가적인 토큰 탈취가 필요하다.)
- Service Name: